Форум dkLab и Denwer
Здесь общаются Web-разработчики.
Генеральный спонсор:
Хостинг «Джино»

Изменение глобальных переменных через .htaccess (ktulu)
Author Message
ktulu
Заглянувший



Joined: 17 Apr 2007
Posts: 17
Карма: -2
   поощрить/наказать


PostPosted: Fri May 30, 2008 4:36 pm (написано за 1 минуту 40 секунд)
   Post subject: Изменение глобальных переменных через .htaccess
Reply with quote

Здравствуйте.
Вопрос вроде простой и банальный, вот только ответа я не знаю. :(

Можно ли как то изменить/задать $_SERVER['DOCUMENT_ROOT'] через .htaccess ?
Заранее спасибо!
Back to top
View user's profile Send private message
dimagolov
Участник форума



Joined: 04 Feb 2007
Posts: 1664
Карма: 96
   поощрить/наказать

Location: Christ Church, Barbados

PostPosted: Fri May 30, 2008 4:42 pm (спустя 6 минут; написано за 27 секунд)
   Post subject:
Reply with quote

Quote:
Можно ли как то изменить/задать $_SERVER['DOCUMENT_ROOT'] через .htaccess
это шутка?

можно поинтересоваться из-за чего возникла такая идея?
Back to top
View user's profile Send private message
ktulu
Заглянувший



Joined: 17 Apr 2007
Posts: 17
Карма: -2
   поощрить/наказать


PostPosted: Fri May 30, 2008 4:47 pm (спустя 4 минуты; написано за 1 минуту 51 секунду)
   Post subject:
Reply with quote

Нет, это не шутка.
Просто на одном хостинге искусственно сделан мультидомен. Куча доменов напрвлены на одну папку, в который лежит .htaccess направляющий каждый домен в свою папку. И все бы хорошо, но $_SERVER['DOCUMENT_ROOT'] "остается в родительской папке". Вот откуда такой вопрос...
Back to top
View user's profile Send private message
dimagolov
Участник форума



Joined: 04 Feb 2007
Posts: 1664
Карма: 96
   поощрить/наказать

Location: Christ Church, Barbados

PostPosted: Fri May 30, 2008 6:35 pm (спустя 1 час 48 минут; написано за 2 минуты 3 секунды)
   Post subject:
Reply with quote

ktulu, как происходит перенаправление? через mod_rewrite?
Я так понимаю, что есть некий скрипт, который должен жестко лежать в корне сайта и завязан через $_SERVER['DOCUMENT_ROOT']. Видимо, придется править скрипт, и "отвязывать" его от DOCUMENT_ROOT.

п.с. а вообще надо менять хостинг
Back to top
View user's profile Send private message
ktulu
Заглянувший



Joined: 17 Apr 2007
Posts: 17
Карма: -2
   поощрить/наказать


PostPosted: Fri May 30, 2008 8:19 pm (спустя 1 час 43 минуты; написано за 2 минуты 45 секунд)
   Post subject:
Reply with quote

Верно, перенаправление происходит через mod_rewrite.
В принципе особой проблемы нет. Просто хотелось, чтобы все работало полноценно, и не было необходимости в скриптах править DOCUMENT_ROOT. Вот потому и поднял такую тему, думал как то можно передать эту переменную через .htaccess, может через директиву SetEnv или еще как то.
Back to top
View user's profile Send private message
dimagolov
Участник форума



Joined: 04 Feb 2007
Posts: 1664
Карма: 96
   поощрить/наказать

Location: Christ Church, Barbados

PostPosted: Fri May 30, 2008 8:40 pm (спустя 20 минут; написано за 44 секунды)
   Post subject:
Reply with quote

DOCUMENT_ROOT не является конфигурационным параметром и его нельзя поменять иначе как в http.conf.
Back to top
View user's profile Send private message
Юрий Насретдинов
Модератор



Joined: 13 Mar 2003
Posts: 8642
Карма: 198
   поощрить/наказать

Location: 007 495

PostPosted: Fri May 30, 2008 8:46 pm (спустя 6 минут; написано за 2 секунды)
   Post subject:
Reply with quote

А директива DocumentRoot не работает через .htaccess ?
Back to top
View user's profile Send private message Send e-mail
ktulu
Заглянувший



Joined: 17 Apr 2007
Posts: 17
Карма: -2
   поощрить/наказать


PostPosted: Fri May 30, 2008 8:52 pm (спустя 6 минут; написано за 19 секунд)
   Post subject:
Reply with quote

Юрий Насретдинов
А как ее указать правильно?
Back to top
View user's profile Send private message
dimagolov
Участник форума



Joined: 04 Feb 2007
Posts: 1664
Карма: 96
   поощрить/наказать

Location: Christ Church, Barbados

PostPosted: Fri May 30, 2008 10:11 pm (спустя 1 час 18 минут; написано за 5 минут 23 секунды)
   Post subject:
Reply with quote

Юрий Насретдинов, почему бы не посмотреть в мане? httpd.apache.org/docs/2.2/mod/core.html#documentroot
Если DocumentRoot используется сервером для преобразования url в местоположение в файловой системе, то есть это точка опоры сервера в ФС. Как можно было предположить, что на нее может оказать влияние какой-то файл, даже называемы .htaccess и лежащий опять таки в некой директории (кроме apache/conf) ? Прямо как барон Мюнхаузен, который вытягивал себя из болота за волосы :)

Конструктивно:
можно или поменять хостера, или заставить имеющегося нанять грамотного админа, который бы настроил virtual hosts вместо извращений с mod_rewrite
Back to top
View user's profile Send private message
Юрий Насретдинов
Модератор



Joined: 13 Mar 2003
Posts: 8642
Карма: 198
   поощрить/наказать

Location: 007 495

PostPosted: Sat May 31, 2008 12:01 pm (спустя 13 часов 50 минут; написано за 2 секунды)
   Post subject:
Reply with quote

Ладно-ладно,был не прав,простите меня,Дима...
Back to top
View user's profile Send private message Send e-mail
Антон Макаренко
Участник форума



Joined: 05 Feb 2004
Posts: 374
Карма: 37
   поощрить/наказать

Location: Киев

PostPosted: Sun Jun 01, 2008 2:03 pm (спустя 1 день 2 часа 2 минуты; написано за 8 минут 37 секунд)
   Post subject:
Reply with quote

Было дело - интегрировал Drupal с другим движком. Тот движок положил в document root, а drupal - в папку /_drupal/ Мне нужно было, чтобы стартовая страница обрабатывалась именно движком drupal'а:
Code (Apache config): скопировать код в буфер обмена
  RewriteEngine on

  # rewrite /
  RewriteCond %{REQUEST_URI} ^/$
  RewriteRule ^(.*)$ /_drupal/index.php?q=$1 [L,QSA]
Но это еще не все. К остальным файлам — css, javascript, картинкам — тоже нужно обращаться, как если бы они были в document root; плюс хочется сохранить родные ЧПУ друпала. Я за основу взял фичу "Search pages in more than one directory", описанную в знаменитом руководстве по преобразованию (httpd.apache.org/docs/2.2/rewrite/rewrite_guide.html#multipledirs). Вот что вышло:
Code (Apache config): скопировать код в буфер обмена
  # поиск более чем в одной папке
  # rewrite non-existing files, that exist in /_drupal/
        RewriteCond         %{REQUEST_FILENAME}  -f
        RewriteRule  ^(.+)  $1  [L]
        RewriteCond         %{DOCUMENT_ROOT}/_drupal%{REQUEST_URI} -f
        RewriteRule  ^(.+)  /_drupal/$1 [L]

  # а это уже родное правило друпала
  # Rewrite current-style URLs of the form 'index.php?q=x'.
  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteCond %{REQUEST_FILENAME} !-d
  RewriteRule ^(.*)$ /_drupal/index.php?q=$1 [L,QSA]
В данном случае, у скрещенных движков получается общее пространство имен папок и виртуальных URL, со всеми последствиями.

А, да. Document Root это конечно не перезаписывает.
Back to top
View user's profile Send private message Send e-mail
ktulu
Заглянувший



Joined: 17 Apr 2007
Posts: 17
Карма: -2
   поощрить/наказать


PostPosted: Sun Jun 01, 2008 2:15 pm (спустя 11 минут; написано за 1 минуту 13 секунд)
   Post subject:
Reply with quote

Ну вобщем понятно, что, то что я хочу, сделать нельзя.
Бедем обходится ручной правкой DocumentRoot.
Большое всем спасибо!
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic All times are GMT + 3 Hours
Page 1 of 1    Email to a Friend.
You cannot post new topics in this forum. You cannot reply to topics in this forum. You cannot edit your posts in this forum. You cannot delete your posts in this forum. You cannot vote in polls in this forum. You cannot attach files in this forum. You can download files in this forum.
XML